package zzs.generalframework.console.core.parameter.commonparameter.address.service;

import java.util.List;

import zzs.generalframework.common.core.parameter.commonparameter.address.AddressBO;
import zzs.generalframework.common.core.parameter.commonparameter.address.AddressInfo;
import zzs.generalframework.console.common.exception.ConsoleException;
import zzs.generalframework.console.common.model.ConsoleReturnBO;

/**
 * @title
 * @description
 * @project zzs-console
 * @package zzs.generalframework.console.core.parameter.commonparameter.address.service
 * @author zzs
 * @date 2018年2月2日
 * @version 1.0
 */
public interface IAddressService
{
	/**
	 * 保存地址信息
	 *
	 * @param address
	 * @return
	 */
	public ConsoleReturnBO saveAddress(AddressBO addressBO);

	/**
	 * 保存地址信息列表
	 *
	 * @param addressBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO saveAddress(List<AddressBO> addressBOList) throws ConsoleException;

	/**
	 * 获取地址信息
	 *
	 * @param addressInfo
	 * @return
	 */
	public ConsoleReturnBO getAddress(AddressInfo addressInfo);

	/**
	 * 获取地址信息列表
	 *
	 * @param addressInfo
	 * @return
	 */
	public ConsoleReturnBO listAddress(AddressInfo addressInfo);

	/**
	 * 更新地址信息
	 *
	 * @param addressBO
	 * @return
	 */
	public ConsoleReturnBO updateAddress(AddressBO addressBO);

	/**
	 * 更新地址信息列表
	 *
	 * @param addressBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO updateAddress(List<AddressBO> addressBOList) throws ConsoleException;

	/**
	 * 删除地址信息
	 *
	 * @param addressBO
	 * @return
	 */
	public ConsoleReturnBO removeAddress(AddressBO addressBO);

	/**
	 * 删除地址信息列表
	 *
	 * @param addressBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO removeAddress(List<AddressBO> addressBOList) throws ConsoleException;

	/**
	 * 统计地址信息
	 *
	 * @param addressBO
	 * @return
	 */
	public Long countAddress(AddressBO addressBO);

}
